package com.zmn.oms.model.dto.messageV1;

import com.zmn.oms.model.entity.detail.OrderDetail;
import com.zmn.oms.model.entity.work.OrderWork;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 类描述： 发送消息task
 *
 * @author yule
 * @date 2020/12/17 17:51
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SendMessageParams implements Serializable {

    private Long orderId;

    private Long workId;

    /**
     * 描述: 服务平台标示
     */
    private Integer plat;

    /**
     * 描述: 节点标示，某一个节点发送的唯一标示 (主动发送值为对应的logType)
     */
    private Integer nodeMark;

    /**
     * 描述: 规则id（用于查找对应消息的唯一标示）
     */
    @NotNull(message = "规则Id不能为空")
    private Integer ruleId;

    /**
     * 描述：可以存放 特殊参数内容，例如获取 取消的内容、改约前的DTO属性值
     * 数据格式示例：{"param0":"000","param1":"示例"}
     */
    private String remark;

    /**
     * 发送用户Id
     */
    private Long sendUserId;

    /**
     * 发送电话
     */
    private String sendPhone;

    /**
     * 第三方应用ID
     */
    private String thirdAppId;

    /**
     * 第三方应用店铺ID
     */
    private Integer appShopId;

    /**
     * 第三方应用名称
     */
    private String thirdAppName;

    /**
     * 临时用户
     */
    private boolean isTempUser;

    //TDO 属性
    /**
     * 工单信息
     */
    private OrderWork orderWork;

    /**
     * 工单详情
     */
    private OrderDetail orderDetail;

    /**
     * 客户电话
     */
    private String telephone;

    /**
     * 当前工单状态：11 已录入、21 已确认、31 已派单、41 已接单、51 已上门、61 已完成、66 服务完成、71 已收单、81 已算账
     */
    private Integer status;

    /**
     * 结果状态：1 进行中、2 成功、3 失败、4 弃单
     */
    private Integer resultStatus;

}
